#include <iostream>
#include <fcntl.h>
#include <unistd.h>
#include <sys/stat.h>
#include <sys/types.h>

int main()
{
    //打开目标文件，用于写入
    int outfd=open("abc.aa",O_WRONLY|O_CREAT|O_TRUNC,0664);
    if(outfd==-1)
    {
        perror("open-outfd");
        return 1;
    }
    int infd=open("mk",O_RDONLY,0664);
    if(infd==-1)
    {
        perror("open-infd");
        return 1;
    }
    char buffer[1024];
    int n=0;
    while((n=read(infd,buffer,sizeof(buffer)))>0)
    {
        
        write(outfd,buffer,n);
    }
    close(outfd);
    close(infd);
     std::cout << "Read: Finished sending data." << std::endl;
    return 0;
    

}
















// int main()
// {
//     // 1. 打开目标文件，用于写入
//     int outfd = open("abc.aa", O_WRONLY | O_CREAT | O_TRUNC, 0664);
//     if (outfd == -1)
//     {
//         perror("open target file (abc.aa)");
//         return 1;
//     }

//     // 2. 打开 FIFO "mk" 用于读取
//     int infd = open("mk", O_RDONLY);
//     if (infd == -1)
//     {
//         perror("open FIFO (mk) for reading");
//         close(outfd);
//         return 1;
//     }

//     char buffer[1024];
//     int n;

//     std::cout << "Reader: Waiting to read from FIFO..." << std::endl;

//     while ((n = read(infd, buffer, sizeof(buffer))) > 0)
//     {
//         if (write(outfd, buffer, n) != n) {
//             perror("write to target file");
//             break;
//         }
//     }

//     if (n < 0) {
//         perror("read from FIFO");
//     }

//     std::cout << "Reader: Finished reading from FIFO." << std::endl;

//     close(infd);
//     close(outfd);

//     return 0;
// }